package com.cn.wanxi.service.impl;

import com.cn.wanxi.dao.UserDao;
import com.cn.wanxi.dao.impl.UserImpl;
import com.cn.wanxi.model.UserModel;
import com.cn.wanxi.service.IUserService;

import java.util.List;

public class UserServiceImpl implements IUserService {
    /**
     * 注册
     * 考虑问题？
     * 1.考虑用户名是否已经存在
     * 2.如果没有？则正常增加
     * 3.如果有，则提示当前用户已经存在
     *
     * @param userModel
     * @return
     */
    @Override
    public String add(UserModel userModel) {
        UserDao userDao = new UserImpl();
//如果数据库里面有当前用户名，
        UserModel model = userDao.findByUserName(userModel.getUsername());//在数据库里面查询是否有值
//        1.model==null
//        2.model的值为null
        boolean isHave = model != null;
        if (isHave) {
            return "isHave";
        }
//        如果没有，则注册注册，如果注册成功
//        新增的时候 insert into  ...  返回的值，是影响数据库的条数 1 0
        int count = userDao.add(userModel);
        boolean isSueecss = count == 1;
        if (isSueecss) {
            return "success";
        }
//        失败返回error
        return "error";

    }

    @Override
    public String login(UserModel userModel) {
//        登录：首先判断验证码是否正确
//        需要将验证码存入到一个全局变量---必须在所有的类里面通用
//        servlet的作用域  pagecontent   request  session  application
        if (userModel.getCode().equals(userModel.getSessionCode())) {
            UserDao userDao = new UserImpl();
            //        判断是否输入的用户名和密码正确
            UserModel model = userDao.findByUsernameAndPassword(userModel);
            if (model == null) {
                return "error";
            } else {
                return "success";
            }

        } else {
            return "error-code";
        }

    }

    @Override
    public List<UserModel> findAll(UserModel userModel) {
        UserDao userDao = new UserImpl();
        return userDao.findAll(userModel);
    }

    @Override
    public String del(Integer id) {
        UserDao userDao = new UserImpl();

        return userDao.del(id) == 1 ? "success" : "error";
    }

    @Override
    public UserModel findById(Integer id) {
        UserDao userDao = new UserImpl();
        return userDao.findById(id);
    }

    @Override
    public String update(UserModel userModel) {

        UserDao userDao = new UserImpl();
        return userDao.update(userModel) == 1 ? "success" : "error";
    }

    @Override
    public Integer getCount(UserModel userModel) {
        UserDao userDao = new UserImpl();
        return userDao.getCount(userModel);
    }
}
